//
//  ZYPCommonTool.h
//  ZYPCommonToolDemo
//
//  Created by 赵云鹏 on 16/6/22.
//  Copyright © 2016年 赵云鹏. All rights reserved.
//

#import <UIKit/UIKit.h>
#import <Foundation/Foundation.h>

@interface ZYPCommonTool : NSObject

@end


#pragma mark - 文件管理

@interface ZYPFileManager : ZYPCommonTool

/**
 *  计算磁盘大小
 *
 *  @return 磁盘总空间
 */
+ (CGFloat)diskOfAllSizeMBytes;

/**
 *  计算磁盘可用空间大小
 *
 *  @return 磁盘可用空间大小
 */
+ (CGFloat)diskOfFreeSizeMBytes;

/**
 *  获取指定路径下某文件大小
 *
 *  @param filePath 文件路径
 *
 *  @return 文件大小
 */
+ (long long)fileSizeAtPath:(NSString *)filePath;

/**
 *  获取指定路径文件夹下所有文件大小
 *
 *  @param folderPath 文件夹路径
 *
 *  @return 文件大小
 */
+ (long long)folderSizeAtPath:(NSString *)folderPath;

@end

#pragma mark - 字符串处理

@interface ZYPStringHandle : ZYPCommonTool

/**
 *  获取字符串(或汉字)首字母
 *
 *  @param string 字符串
 *
 *  @return 首字母
 */
+ (NSString *)firstCharacterWithString:(NSString *)string;

/**
 *  将字符串数组按照元素首字母顺序进行排序分组
 *
 *  @param array 字符串数组
 *
 *  @return 按首字母排序字典
 */
+ (NSDictionary *)dictionaryOrderByCharacterWithOriginalArray:(NSArray *)array;

/**
 *  判断手机号码格式是否正确(Debug)
 *
 *  @param mobile 手机号码
 *
 *  @return 格式正误
 */
+ (BOOL)valiMobile:(NSString *)mobile;

/**
 *  判断邮箱格式是否正确
 *
 *  @param email 邮箱
 *
 *  @return 格式正误
 */
+ (BOOL)isAvailableEmail:(NSString *)email;
@end




#pragma mark - 时间与日期

/**
 *  获取当前时间
 *
 *  @param NSString 时间格式(具体参照注释)
 *
 *  @return 当前时间
 */
+ (NSString *)currentDateWithFormat:(NSString *)format;

/**
 *  计算两次时间的间隔(自定义时间格式)
 *
 *  @param lastTime    上次日期(需要和格式对应)
 *  @param format1     上次日期格式
 *  @param currentTime 最近日期(需要和格式对应)
 *  @param format2     最近日期格式
 *
 *  @return xx分钟前、xx小时前、xx天前
 */
+ (NSString *)timeIntervalFromLastTime:(NSString *)lastTime
                        lastTimeFormat:(NSString *)format1
                         ToCurrentTime:(NSString *)currentTime
                     currentTimeFormat:(NSString *)format2;

/**
 *  计算两次时间的间隔(默认格式)
 *
 *  @param lastTime    上次日期
 *  @param currentTime 最近日期
 *
 *  @return xx分钟前、xx小时前、xx天前
 */
+ (NSString *)timeIntervalFromLastTime:(NSDate *)lastTime ToCurrentTime:(NSDate *)currentTime;




#pragma mark - UI

/**
 *  将十六进制颜色转换为 UIColor 对象
 *
 *  @param color 十六进制字符串
 *
 *  @return UIColor 对象
 */
+ (UIColor *)colorWithHexString:(NSString *)color;


/**
 *  对图片进行滤镜处理
 *
 *  @param image 图片
 *  @param name  滤镜样式
 *
 *  @return 滤镜处理后的图片
 */
+ (UIImage *)filterWithOriginalImage:(UIImage *)image filterName:(NSString *)name;


/**
 *  对图片进行模糊处理(iOS9.0)
 *
 *  @param image  图片
 *  @param name   模糊样式
 *  @param radius 半径
 *
 *  @return 模糊处理后的图片
 */
+ (UIImage *)blurWithOriginalImage:(UIImage *)image blurName:(NSString *)name radius:(NSInteger)radius;


/**
 *  调整图片饱和度, 亮度, 对比度
 *
 *  @param image      目标图片
 *  @param saturation 饱和度
 *  @param brightness 亮度: -1.0 ~ 1.0
 *  @param contrast   对比度
 *
 *  @return 调整后的图片
 */
+ (UIImage *)colorControlsWithOriginalImage:(UIImage *)image
                                 saturation:(CGFloat)saturation
                                 brightness:(CGFloat)brightness
                                   contrast:(CGFloat)contrast;

/**
 *  创建毛玻璃效果View
 *
 *  @param frame 尺寸
 *
 *  @return 毛玻璃效果View
 */
+ (UIVisualEffectView *)effectViewWithFrame:(CGRect)frame;

/**
 *  全屏截图
 *
 *  @return 截图图片
 */
+ (UIImage *)shotScreen;

/**
 *  截取View生成一张图片
 *
 *  @param view 截取的view
 *
 *  @return 截图图片
 */
+ (UIImage *)shotWithView:(UIView *)view;

/**
 *  截取view中某个区域生成一张图片
 *
 *  @param view  截取的view
 *  @param scope view选取的区域
 *
 *  @return 截图图片
 */
+ (UIImage *)shotWithView:(UIView *)view scope:(CGRect)scope;

/**
 *  压缩图片到指定尺寸大小
 *
 *  @param image 需要压缩的图片
 *  @param size  尺寸大小
 *
 *  @return 压缩后的图片
 */
+ (UIImage *)compressOriginalImage:(UIImage *)image toSize:(CGSize)size;







#pragma mark - 临时
@end


@interface <#class name#> : <#superclass#>

@end
